﻿using Acaweb.Common;
using Acaweb.Model.Entities.DatosCompuestos;
using System.ServiceModel.Activation;
using Components = Acaweb.Componentes.Contracts;

namespace Acaweb.Servicios.Services
{
    [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Required)]
    public class EvaluarEstudiantesService : Contracts.IEvaluarEstudiantesService
    {
        Components.ICursosMatriculadosService _CursoMatriculadoComponent = AppCtx.Resolve<Components.ICursosMatriculadosService>();

        ////TODO: Quita esta logica de aquí
        //public void EvaluarCurso(CursosMatriculadosPk CursoPk, double Nota, int Corte)
        //{
        //    CursosMatriculados Curso = new CursosMatriculadosService().GetById(CursoPk);

        //    Acaweb.Componentes.Contracts.IHorariosCursosService _HorariosComponent = AppCtx.Resolve<Acaweb.Componentes.Contracts.IHorariosCursosService>();

        //    List<HorariosCursos> Cursos = _HorariosComponent.GetByCurso(Curso.CursoMatriculadoPk.CursoPk).ToList();
        //    if (Cursos.Count > 0)
        //        if (Cursos[0].CodigoDocente == AuthenticationService.GetCurrent().Username)
        //            EvaluarEstudiante(Curso, Nota, Corte);
        //}

        public void EvaluarCurso(CursosMatriculadosPk CursoPk, double Nota)
        {
            _CursoMatriculadoComponent.Evaluar(CursoPk, Nota, AuthenticationService.GetCurrent().Username);


            //CursosMatriculados Curso = new CursosMatriculadosService().GetById(CursoPk);

            //Acaweb.Componentes.Contracts.IHorariosCursosService _HorariosComponent = AppCtx.Resolve<Acaweb.Componentes.Contracts.IHorariosCursosService>();

            //List<HorariosCursos> Cursos = _HorariosComponent.GetByCurso(Curso.CursoMatriculadoPk.CursoPk).ToList();
            //if (Cursos.Count > 0)
            //    if (Cursos[0].CodigoDocente == AuthenticationService.GetCurrent().Username)
            //        EvaluarEstudiante(Curso, Nota, Corte);
        }

        //public void EvaluarEstudiante(CursosMatriculados CursoMatriculado, double Nota, int Corte)
        //{
        //    switch (Corte)
        //    {
        //        case 1:
        //            CursoMatriculado.Nota1 = Nota;
        //            break;

        //        case 2:
        //            CursoMatriculado.Nota2 = Nota;
        //            break;

        //        case 3:
        //            CursoMatriculado.Nota3 = Nota;
        //            break;

        //        case 4:
        //            CursoMatriculado.Nota4 = Nota;
        //            break;

        //        case 5:
        //            CursoMatriculado.Nota5 = Nota;
        //            break;
        //    }

        //    _CursoMatriculadoComponent.UpdateCursosMatriculados(CursoMatriculado);
        //}


        public int CorteHabilitado(CursoPk CursoPk)
        {
            return _CursoMatriculadoComponent.CorteHabilitado(CursoPk);
        }
    }
}